<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 匿名函数的函数体
    // (()=>{
    //     console.log("hello")
    // })()

    // 赋值式创建函数的值
    // const fn = ()=>{
    //     console.log("world")
    // }
    // fn();

    // 事件处理函数（不推荐，因为会丢失自身this）
    // document.onclick = ()=>{
    //     console.log(1)
    // }

    // 回调函数
    // const arr = [3,6,23,167,89];
    // arr.sort((a,b)=>{
    //     return a-b;
    // })
    // console.log(arr)

    // 返回值(闭包函数)
    // function fn(){
    //     return ()=>{
    //         console.log(123)
    //     }
    // }
    // fn()()


    // 当箭头函数有且只有一个参数时，可以省略小括号
    // 当箭头函数有且直接返回值时，可以省略花括号和return（花括号和return必须同时省略）
    // const fn = name => "hello "+name;
    // console.log(fn("admin"));


    // 箭头函数自身没有this，自动使用上层函数的this
    // const obj = {
    //     name:"obj",
    //     show:function(){
    //         setTimeout(()=>{
    //             console.log(this);
    //         }, 1000);
    //     }
    // }
    // obj.show();

    
    // 箭头函数不能被new执行
    // const fn = ()=>{}
    // new fn()

    
    // 箭头函数伤害了代码可读性


    // 不建议大范围使用
    // 小范围的用于参数或返回值，比较方便




</script>
</html>